package com.wang.users.service;

import com.alibaba.fastjson.JSONObject;
import com.wang.common.util.PageInfoUtil;
import com.wang.users.pojo.AAdmins;
import com.wang.users.pojo.AUsers;

import java.util.List;
import java.util.Map;

/**
 * 一个模块一个Service
 */
public interface IUsersService
{
    /**
     * 保存一条管理员记录
     * @param admins   管理员
     * @return  是一个json对象;
     * {
     * 	"code":"响应码",
     * 	"info":"响应信息",
     * 	"data":
     *    {
     * 		"id:":"",
     * 		"effect":""
     *    }
     * }
     */
    JSONObject saveOneAdminsService(AAdmins admins);

    /**
     * 更新一条管理员记录
     * @param admins   管理员
     * @return  此条sql语句对数据库影响的条数
     */
    JSONObject updateOneAdminsService(AAdmins admins);

    /**
     * 删除一条管理员记录
     * @param condMap   搜索条件
     * @return  此条sql语句对数据库影响的条数
     */
    JSONObject deleteBatchAdminsService(Map<String,Object> condMap);

    /**
     * 查询一条管理员记录
     * @param condMap   查询条件
     * @return  查询一条管理员记录
     */
    AAdmins selectOneAdminsService(Map<String,Object> condMap);

    /**
     * 查询多条管理员记录
     * @param pageInfoUtil 如果为null,查询全部记录,不分页;如果不为空,分页;
     * @param condMap   查询条件
     * @return  查询一条管理员记录
     */
    List<AAdmins> selectCondListAdminsService(PageInfoUtil pageInfoUtil, Map<String, Object> condMap);

    /**
     * 保存一条用户记录
     * @param users   用户
     * @return  是一个json对象;
     * {
     * 	"code":"响应码",
     * 	"info":"响应信息",
     * 	"data":
     *    {
     * 		"id:":"",
     * 		"effect":""
     *    }
     * }
     */
    JSONObject saveOneUsersService(AUsers users);

    /**
     * 更新一条用户记录
     * @param users   用户
     * @return  此条sql语句对数据库影响的条数
     */
    JSONObject updateOneUsersService(AUsers users);

    /**
     * 删除一条用户记录
     * @param condMap   搜索条件
     * @return  此条sql语句对数据库影响的条数
     */
    JSONObject deleteBatchUsersService(Map<String,Object> condMap);

    /**
     * 查询一条用户记录
     * @param condMap   查询条件
     * @return  查询一条用户记录
     */
    AUsers selectOneUsersService(Map<String,Object> condMap);

    /**
     * 查询多条用户记录
     * @param pageInfoUtil 如果为null,查询全部记录,不分页;如果不为空,分页;
     * @param condMap   查询条件
     * @return  查询一条用户记录
     */
    List<AUsers> selectCondListUsersService(PageInfoUtil pageInfoUtil, Map<String, Object> condMap);
}
